home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs52.d81
/
timtimer.arc
/
READ.SEQ2.0
< prev
next >
Wrap
Text File
|
2009-10-10
|
4KB
|
229 lines
********************************
*áreadáofárealátimeáclocká#2.0á*
********************************
*áááááááááááááááááááááááááááááá*
*ááááááááámayá29á1987áááááááááá*
*áááááááááááááááááááááááááááááá*
*áááááábyátimágácorcoranááááááá*
*áááááááááááááááááááááááááááááá*
********************************
*áthisás/wáisápartáofátheártcáá*
*ásharewareápackage.áitáisáokay*
*átoádistributeáandáshareábutáá*
*ánotátoásell.ááááááááááááááááá*
*áááááááááááááááááááááááááááááá*
*ápleaseáconsiderásupportingááá*
*ááámysticájim'sás/wásystemáááá*
*áááááááááááááááááááááááááááááá*
********************************
*
*
*
org $4580
ddra equ $dc02
dra equ $dc00
hours equ $4570
mins equ $4571
secs equ $4572
temp equ $4573
tmp1 equ $4574
tmp2 equ $4575
hsecs equ $4576
count equ $4577
*
*
*
*
*
lda $01 ;getámemáconfig
pha ;saveáit
lda #$35 ;turnáonái/oáregion
sta $01
start sei ;intáoff
rdrtc lda dra ;readádra
sta $02 ;saveáit
lda ddra ;readáddra
sta $03 ;saveáit
lda #$f ;loadánewáconfig
sta ddra ;4áo/p's
lda #$f ;states
sta dra ;ceátrue,ásclkálow
*
*
*
*áreadároutine
*
lda #$dc0f ;readácrbáforácurrentásetting
sta tmp1 ;saveáitáforánow
and #$7f ;todáselect
sta $dc0f ;storeáit
jsr slct ;selectáclockáchip
jsr rdbyt ;readásecs/100
lsr ;shiftárightá4áplaces
lsr ;
lsr ;
lsr ;
sta hsecs ;saveáforánow
jsr rdbyt ;readásecs
sta secs ;saveáforánow
jsr rdbyt ;readámins
sta mins ;saveáitáforánow
jsr rdbyt ;readáhours
tax ;transferátoáxáreg.
and #$1f ;cleará3ámsb's
cmp #$12 ;isáitátwelve?
bne noway ;noáitáisn'tátwelve
txa ;retrieve
eor #$20 ;toggleáam/pmábit
tax
noway txa ;retrieve
and #$1f ;cleará3ámsb's
sta hours
txa ;retrieveáitáfromáxáreg
and #$20 ;isolateáam/pmábit
asl
asl
ora hours ;putáhoursábackáin
sta tmp2 ;saveáitáforálater
sta $dc0b ;saveátoátheáciaátod
cmp #$12 ;isáitátwelve?
bne test ;no?ágotoátest
lda #$0 ;otherwiseásetáhourátoá0
test bit tmp2 ;am/pmátest
bpl itsam ;onáamágotoáitsam
sed ;decimalámode
clc ;clearácarry
adc #$12 ;makeáitá24áhráclockáformat
cld ;leaveádecimalámode
itsam jsr bcdthx ;convertátoáhex
sta $8519 ;saveátoágeosáhours
lda mins ;retrieveáminutes
sta $dc0a ;saveátoátod
jsr bcdthx ;convertátoáhex
sta $851a ;saveátoágeosámins
lda secs ;retrieveáseconds
sta $dc09 ;saveátoátod
jsr bcdthx ;convertátoáhex
sta $851b ;saveátoágeosásecs
lda hsecs ;retrieveásecs/100
sta $dc08 ;&ástartáupátheátodáclock
jsr bcdthx ;convert
sta $851c ;saveátoágeosásecs/100
jsr rdbyt ;readádayá&áignore
jsr rdbyt ;readádate
jsr bcdthx ;convertátoáhex
sta $8518 ;saveátoágeosáday
jsr rdbyt ;readámonth
jsr bcdthx ;convertátoáhex
sta $8517 ;saveátoágeosámonth
jsr rdbyt ;readáyear
jsr bcdthx ;convertátoáhex
sta $8516 ;saveátoágeosáyear
lda #$e ;deselectátheáchip
sta dra
finish pla ;getáoldámemáconfig
sta $01 ;setáit
cli ;enableáinterrupts
jsr $c22c ;reloadádesktop
*
*
*
*
*áwriteáaábyteátoátheártc
*
wrtbyt tax ;saveádataábyte
ldy #$8 ;setáupácount
lda #$e ;initialáconfig
sta dra ;outputáenableáoff
txa ;retrieveádata
wloop and #$1 ;clráallábutálsb
ora #$4 ;setáupáforáwrite
sta dra
ora #$e ;writeádataábit
sta dra
dey ;decrementácount
beq wdone ;finished?
txa ;getádata
lsr ;selectánextábit
tax ;saveánewádata
jmp wloop ;loop
wdone rts
*
*
*
*
*áreadáaábyteáfromátheártc
*
rdbyt lda #$e ;configálsbáasái/p
sta ddra ;
lda #$0 ;
sta temp ;clrátemp
ldx #$8 ;count=8
rloop lda #$e ;setupáforáread
sta dra ;alláo/pábitsáhi
á lda #$2 ;enableádataátoáread
sta dra
lda dra ;readádata
ror a ;rotateádataábitátoác
lda temp ;readátempátoáacc
ror a
sta temp ;saveátemp
dex ;updateácount
bne rloop
lda temp ;tempátoáacc
rts
*
*
*
*
*ábcdátoáhexáconvertároutine
*ááthanksátoábswáforátheáhelp
*
*
bcdthx pha ;saveábcdávalue
and #$f0 ;isolateáleftánibble
lsr ;andáshiftátoárhs
lsr
lsr
lsr
tax ;markánumber
pla ;getábcdávalue
and #$0f ;clearáleftánibble
clc ;addáxátimesá10
bhloop dex
bmi bhxout
adc #$0a
bne bhloop
bhxout rts
*
*
*
*
*
*
*
*
*selectáclockáchip
*
*
*
slct lda #$e ;readácycleátoástartádallasáchip
sta dra
lda #$2
sta dra
lda #$e
sta dra
lda #$2 ;loopácount
sta count
sloop lda #$c5
jsr wrtbyt
lda #$3a
jsr wrtbyt
lda #$a3
jsr wrtbyt
lda #$5c
jsr wrtbyt
dec count ;decrementácount
bne sloop
rts